function rose
grid on
[x,t]=meshgrid((0:24)./24,(0:0.5:575)./575.*20.*pi-4*pi);
p=(pi/2)*exp(-t./(8*pi));
change=sin(20*t)/150;
u=1-(1-mod(3.3*t,2*pi)./pi).^4./2+change;
y=2*(x.^2-x).^2.*sin(p);

r=u.*(x.*sin(p)+y.*cos(p)).*1.5;
h=u.*(x.*cos(p)-y.*sin(p));

map=[1.0000    0.6471    0.8275
    0.9984    0.6353    0.8130
    0.9969    0.6236    0.7985
    0.9953    0.6118    0.7840
    0.9937    0.6000    0.7695
    0.9921    0.5882    0.7550
    0.9906    0.5765    0.7404
    0.9890    0.5647    0.7259
    0.9874    0.5529    0.7114
    0.9859    0.5412    0.6969
    0.9843    0.5294    0.6824
    0.9757    0.5149    0.6730
    0.9670    0.5004    0.6636
    0.9584    0.4859    0.6541
    0.9498    0.4714    0.6447
    0.9411    0.4568    0.6353
    0.9325    0.4423    0.6259
    0.9239    0.4278    0.6165
    0.9153    0.4133    0.6070
    0.9066    0.3988    0.5976
    0.8980    0.3843    0.5882
    0.8937    0.3780    0.5756
    0.8894    0.3718    0.5631
    0.8851    0.3655    0.5505
    0.8808    0.3592    0.5380
    0.8764    0.3529    0.5254
    0.8721    0.3467    0.5129
    0.8678    0.3404    0.5003
    0.8635    0.3341    0.4878
    0.8592    0.3279    0.4752
    0.8549    0.3216    0.4627
    0.8561    0.3165    0.4596
    0.8573    0.3114    0.4564
    0.8584    0.3063    0.4533
    0.8596    0.3012    0.4502
    0.8608    0.2961    0.4471
    0.8620    0.2910    0.4439
    0.8632    0.2859    0.4408
    0.8643    0.2808    0.4377
    0.8655    0.2757    0.4345
    0.8667    0.2706    0.4314
    0.8549    0.2620    0.4165
    0.8432    0.2533    0.4016
    0.8314    0.2447    0.3867
    0.8196    0.2361    0.3718
    0.8078    0.2274    0.3569
    0.7961    0.2188    0.3420
    0.7843    0.2102    0.3271
    0.7725    0.2016    0.3122
    0.7608    0.1929    0.2973
    0.7490    0.1843    0.2824
    0.7553    0.1827    0.2855
    0.7616    0.1812    0.2887
    0.7678    0.1796    0.2918
    0.7741    0.1780    0.2949
    0.7804    0.1764    0.2980
    0.7867    0.1749    0.3012
    0.7930    0.1733    0.3043
    0.7992    0.1717    0.3074
    0.8055    0.1702    0.3106
    0.8118    0.1686    0.3137
    0.7977    0.1631    0.3023
    0.7836    0.1576    0.2910
    0.7694    0.1521    0.2796
    0.7553    0.1466    0.2682
    0.7412    0.1411    0.2569
    0.7271    0.1357    0.2455
    0.7130    0.1302    0.2341
    0.6988    0.1247    0.2227
    0.6847    0.1192    0.2114
    0.6706    0.1137    0.2000
    0.6686    0.1141    0.1996
    0.6667    0.1145    0.1992
    0.6647    0.1149    0.1988
    0.6628    0.1153    0.1984
    0.6608    0.1157    0.1981
    0.6588    0.1160    0.1977
    0.6569    0.1164    0.1973
    0.6549    0.1168    0.1969
    0.6530    0.1172    0.1965
    0.6510    0.1176    0.1961];
set(gca,'CameraPosition',[2 2 2])
hold on
Xset=r.*cos(t);Yset=r.*sin(t);
sf=surface(Xset,Yset,h,'EdgeAlpha',0.1,...
    'EdgeColor',[0.5 0.5 0.5],'FaceColor','interp');
colormap(map)


theta=0;
while 1
    theta=theta+0.02;
    set(sf,'XData',Xset.*cos(theta)-Yset.*sin(theta),...
        'YData',Xset.*sin(theta)+Yset.*cos(theta))
    pause(0.01)
end


end
